package com.dragon.modules.yuegou.model.order;

import com.dragon.modules.yuegou.entity.order.OrderRefundDetailEntity;
import com.dragon.modules.yuegou.enums.order.OrderRefundDetailUserType;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 退款明细(单品)模型类
 * 
 * @author pbuilder generated
 * @date 2019-08-17 15:16:41
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class OrderRefundDetail extends OrderRefundDetailEntity {

	/**
	 * 构造一个空退款明细(单品)模型对象
	 */
	public OrderRefundDetail() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个退款明细(单品)模型对象
	 * 
	 * @param entity 实体对象
	 */
	public OrderRefundDetail(OrderRefundDetailEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个退款明细(单品)模型对象
	 * 
	 * @param other 其它对象
	 */
	public OrderRefundDetail(OrderRefundDetail other) {
		super(other);
	}

	@Override
	public String getId() {
		return id;
	}

	/**
	 * 设置
	 * 
	 * @param id
	 * @return 当前对象
	 */
	public OrderRefundDetail id(String id) {
		this.id = id;
		return this;
	}

	@Override
	public String getOrderNo() {
		return orderNo;
	}

	/**
	 * 设置订单号
	 * 
	 * @param orderNo 订单号
	 * @return 当前对象
	 */
	public OrderRefundDetail orderNo(String orderNo) {
		this.orderNo = orderNo;
		return this;
	}

	@Override
	public String getGoodsId() {
		return goodsId;
	}

	/**
	 * 设置订单单品id
	 * 
	 * @param goodsId 订单单品id
	 * @return 当前对象
	 */
	public OrderRefundDetail goodsId(String goodsId) {
		this.goodsId = goodsId;
		return this;
	}

	@Override
	public String getRemarks() {
		return remarks;
	}

	/**
	 * 设置退款配注
	 * 
	 * @param remarks 退款配注
	 * @return 当前对象
	 */
	public OrderRefundDetail remarks(String remarks) {
		this.remarks = remarks;
		return this;
	}

	@Override
	public BigDecimal getAmount() {
		return amount;
	}

	/**
	 * 设置退款金额
	 * 
	 * @param amount 退款金额
	 * @return 当前对象
	 */
	public OrderRefundDetail amount(BigDecimal amount) {
		this.amount = amount;
		return this;
	}

	@Override
	public OrderRefundDetailUserType getUserType() {
		return userType;
	}

	/**
	 * 设置[枚举]用户类型：0-系统-SYSTEM、1-会员-MEMBER、2-用户-USER
	 * 
	 * @param userType [枚举]用户类型：0-系统-SYSTEM、1-会员-MEMBER、2-用户-USER
	 * @return 当前对象
	 */
	public OrderRefundDetail userType(OrderRefundDetailUserType userType) {
		this.userType = userType;
		return this;
	}

	@Override
	public String getCreatedBy() {
		return createdBy;
	}

	/**
	 * 设置
	 * 
	 * @param createdBy
	 * @return 当前对象
	 */
	public OrderRefundDetail createdBy(String createdBy) {
		this.createdBy = createdBy;
		return this;
	}

	@Override
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}

	/**
	 * 设置
	 * 
	 * @param createdTime
	 * @return 当前对象
	 */
	public OrderRefundDetail createdTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
		return this;
	}

	@Override
	public String getRefundId() {
		return refundId;
	}

	/**
	 * 设置订单退款id
	 * 
	 * @param refundId 订单退款id
	 * @return 当前对象
	 */
	public OrderRefundDetail refundId(String refundId) {
		this.refundId = refundId;
		return this;
	}
}
